import js from '@eslint/js'
import pluginVue from 'eslint-plugin-vue'
import globals from 'globals'
import skipFormatting from '@vue/eslint-config-prettier/skip-formatting'
import { ElLoading, ElMessage, ElMessageBox } from 'element-plus'

export default [
  {
    name: 'app/files-to-lint',
    files: ['**/*.{js,mjs,jsx,vue}'],
  },

  {
    name: 'app/files-to-ignore',
    ignores: ['**/dist/**', '**/dist-ssr/**', '**/coverage/**'],
  },

  {
    languageOptions: {
      globals: {
        ...globals.browser,
      },
    },
  },
    //添加规则
    {
      // 添加自定义规则
      rules: {
        //1.禁用格式化插件 prettier format on save 关闭
        //2.安装eslint插件，并配置保存时自动修复
        'prettier/prettier': [
          'warn',
          {
            singleQuote: true, // 单引号
            semi: false, // 无分号
            printWidth: 80, // 每行宽度至多80字符
            trailingComma: 'none', // 不加对象数组最后逗号
            endOfLine: 'auto', // 换行符号不限制（win mac 不一致）
          },
        ],
        'vue/multi-word-component-names': [
          'warn',
          {
            ignores: ['index'], // vue组件名称多单词组成（忽略index.vue）
          },
        ],
        'vue/no-setup-props-destructure': ['off'], // 关闭 props 解构的校验
        'no-undef':'error', // 添加未定义变量错误提示
      },
    },{
      globals:{
        ElMessage:'readonly',
        ElMessageBox:'readonly',
        ElLoading:'readonly'
      }
    },
  js.configs.recommended,
  ...pluginVue.configs['flat/essential'],
  skipFormatting,

]
